package cn.itsource.langxun.service;

import cn.itsource.langxun.domain.Product;
import cn.itsource.langxun.domain.Specification;
import cn.itsource.langxun.query.ProductQuery;
import cn.itsource.langxun.util.PageList;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品 服务类
 * </p>
 *
 * @author lishijie
 * @since 2019-08-21
 */
public interface IProductService extends IService<Product> {

    /**
     * 分页高级查询
     * @param query
     * @return
     */
    PageList<Product> queryPage(ProductQuery query);

    /**
     * 查询商品的显示属性
     * @param productId
     * @return
     */
    List<Specification> getViewProperties(Long productId);

    /**
     * 修改显示属性
     * @param productId
     * @param viewProperties
     */
    void updateViewProperties(Long productId, List<Specification> viewProperties);

    /**
     * 查询商品的Sku属性
     * @param productId
     * @return
     */
    List<Specification> getSkuProperties(Long productId);

    /**
     * 修改商品的Sku属性
     * @param productId
     * @param skuProperties
     * @param skus
     */
    void updateSkuProperties(long productId, List<Specification> skuProperties, List<Map<String, Object>> skus);
}
